This invention relates to apparatus for storing and retrieving digital data from recording medium and, more particularly, to a system within such apparatus for detecting and correcting errors.
User programmable digital calculators such as the programmable calculator described in copending U.S. Pat. application Ser. No. 622,280 filed of even date with and assigned to the assignee of the present invention utilize user recorded or prerecorded programs stored on a recording medium such as magnetic cards. It is desirable to provide an inexpensive and simplified system for detecting and correcting errors which occur in reading or writing data on such recording medium.
Such an error detecting and correcting system is provided in accordance with the present invention and may be incorporated on the data reader/writer chip associated with the recording mechanism of such programmable calculator.
In accordance with the present invention, data is stored and retrieved from a recording medium such as a magnetic recording medium utilizing a nonrecurring zero storage technique in which a first track is provided for alternately storing negative to positive and positive to negative transitions for each "zero" bit and a second track is provided for alternately storing negative to positive and positive to negative transitions for each "one" bit. In one embodiment of the invention, a plurality of such pairs of tracks are provided. The ORed output of at least two of the pairs are then compared to determine whether a bit has appeared on one pair but is missing from the other pair. For reading the data stored on the storage media, means such as a data latch is provided for each track for storing the direction of the previous transition positive to negative or negative to positive for that track and means for comparing the direction of such previous transition with the direction of the present transition. Whenever it is determined that the state of a bit of data is missing on a pair of tracks, i.e., no transition stored on either track for a given bit, the transitions preceding and following the missing transition will indicate the track on which the data bit should have been stored and hence the state of the missing bit. Correction means is then provided for generating the state of the missing bit and transferring it in place of the missing bit.